Object recognition includes detecting and identifying objects in an image. This is used in computer vision so that actions can be performed by a computer depending on the identity of the observed object from an image and without the assistance from a person to identify the object for example. Otherwise, object detection may be used to identify an object that is to be moved within the image whether for practical reasons such as work place presentations or products, or for entertainment purposes. Also, once the objects are identified, it is often useful to augment the object in an image by placing external virtual objects onto the detected object in the scene. When performed correctly, the virtual objects are placed on the object in a realistic perspective that matches the perspective in the image so that the scene with the inserted objects looks realistic to a person viewing the image. In order to perform many of these functions, the three-dimensional position and dimensions of the object in the image are usually needed.
While object recognition and/or augmentation of objects with planar surfaces is well developed, detection and recognition, and in turn, augmentation, of curved objects in an image is still inadequate. Thus, for example, there is still great difficulty in accurately recognizing a cylindrical object in an image, such as a bottle, due to poor depth mapping of curved objects.